package com.candy.control;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;

@RestController
public class MoreFileUploadController {

    @PostMapping("/moreFileuploads")
    public List<String> upload(MultipartFile[] uploadImgs, HttpServletRequest request){
//        准备一个集合,存在文件的地址
        List<String> filePaths=new ArrayList<>();
        //        返回的是一个临时文件夹的地址
        String realPath=request.getServletContext().getRealPath("/uploadFile/");
//        对上传的时间进行格式化处理,按照上传的时间准备文件存放的位置
        String date = new SimpleDateFormat( "yyyy/w/dd").format(new Date());
        File folder = new File(realPath,date);
        if(!folder.isDirectory()){
            folder.mkdirs();
        }
//        对上传的文件进行遍历处理
        for(MultipartFile multipartFile:uploadImgs){
//            获取上传文件的名字
            String oldFileName =multipartFile.getOriginalFilename();
//            对上传的文件名字重新进行命名拼接
            String newFileName = UUID.randomUUID().toString()+oldFileName.substring(oldFileName.lastIndexOf( "."),oldFileName.length());
            try {
//                将文件上传到指定的目录中
                multipartFile.transferTo(new File(folder, newFileName));
//                获取文件上传所在的地址
                String filePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/uploadFile/"+date+"/"+newFileName;
//               将文件的地址放在集合中
                filePaths.add(filePath);}
            catch (IOException e) {
                e.printStackTrace();
            }
        }
//将图片上传后的路径返回
        return filePaths;
    }
}

